// var i;
// var $uI_GameFail_UIBindings = require("./UI_GameFail_UIBindings");
// var $uIView = require("./UIView");
// var $aDManager = require("./ADManager");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var $gameDataManager = require("./GameDataManager");
// var $commonUtils = require("./CommonUtils");
// var h = cc._decorator;
// var f = h.ccclass;
// var g = h.property;
// var _ = h.inspector;
// var y = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.auto_ui = null;
//         t.nowdata = {};
//         t.time = 10;
//         t.offtime = 0;
//         t.isjishi = !1;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype._show = function (e) {
//         var t = [];
//         for (var o = 1; o < arguments.length; o++) {
//             t[o - 1] = arguments[o];
//         }
//         this.nowdata = e;
//         this.isjishi = !1;
//         $commonUtils.default.cleanGold();
//     };
//     t.prototype._clickListener = function (e) {
//         var t = this.auto_ui;
//         switch (e) {
//             case t.btn_fuhuo:
//                 this.onFuHuo();
//                 break;
//             case t.btn_nofuhuo:
//                 this.onBackHome();
//         }
//     };
//     t.prototype.onFuHuo = function () {
//         var e = this;
//         var t = "视频复活";
//         if (1 == $gameGlobalVariable.GameGlobalVariable.isTeShuLevel()) {
//             t = "无尽模式视频复活";
//         } else {
//             {
//                 var o =
//                     $gameDataManager.GameDataMgr.getNowLevelBoshuState(
//                         $gameGlobalVariable.GameGlobalVariable.nowlevel,
//                         2
//                     ) + 1;
//                 t = $gameGlobalVariable.GameGlobalVariable.nowlevel + "章_" + o + "波_" + t;
//             }
//         }
//         $aDManager.ADMgr.showRewardedVideo(t, function () {
//             e.nowdata.back(1);
//             e.onCloseView();
//         });
//     };
//     t.prototype.onBackHome = function () {
//         this.nowdata.back(4);
//         this.onCloseView();
//     };
//     t.prototype.onCloseView = function () {
//         this._close();
//     };
//     t.prototype.updateTime = function () {};
//     t.prototype.jianTime = function () {
//         this.time -= 1;
//         this.updateTime();
//         if (this.time <= 0) {
//             this.isjishi = !0;
//             this.onBackHome();
//         }
//     };
//     t.prototype.update = function (e) {
//         if (!this.isjishi) {
//             this.offtime += e;
//             if (this.offtime >= 1) {
//                 this.offtime = 0;
//             }
//         }
//     };
//     __decorate([g($uI_GameFail_UIBindings.default)], t.prototype, "auto_ui", void 0);
//     return __decorate([f], t);
// })($uIView.default);
// exports.default = y;


// import UI_GameFail_UIBindings from "./UI_GameFail_UIBindings";
// import UIView from "./UIView";
// import {ADMgr} from "./ADManager";
// import { GameGlobalVariable } from "./GameGlobalVariable";
// import CommonUtils from "./CommonUtils";
// import { GameDataMgr } from "./GameDataManager";

// const { ccclass, property } = cc._decorator;

// @ccclass
// export default class GameFailUIView extends UIView {
//     /**
//      * 自动绑定的UI组件
//      * @建议名称 autoUI
//      */
//     @property(UI_GameFail_UIBindings)
//     public auto_ui: any = null;

//     /**
//      * 当前数据
//      * @建议名称 currentData
//      */
//     public nowdata: any = {};

//     /**
//      * 倒计时时间
//      * @建议名称 countdownTime
//      */
//     public time: number = 10;

//     /**
//      * 离线时间
//      * @建议名称 offlineTime
//      */
//     public offtime: number = 0;

//     /**
//      * 是否在计时
//      * @建议名称 isTiming
//      */
//     public isjishi: boolean = false;

//     /**
//      * 显示失败UI
//      * @param {any} data - 失败数据
//      * @param  {...any} rest - 其他参数
//      * @建议名称 showFailUI
//      */
//     public _show(data: any, ...rest: any[]) {
//         this.nowdata = data;
//         this.isjishi = false;
//         CommonUtils.cleanGold();
//     }

//     /**
//      * 点击事件监听器
//      * @param {any} event - 点击事件
//      * @建议名称 clickListener
//      */
//     public _clickListener(event: cc.Button) {
//         const ui = this.auto_ui;
//         switch (event) {
//             case ui.btn_fuhuo:
//                 this.onFuHuo();
//                 break;
//             case ui.btn_nofuhuo:
//                 this.onBackHome();
//         }
//     }

//     /**
//      * 复活操作
//      * @建议名称 handleRevive
//      */
//     public onFuHuo() {
//         let actionName = "视频复活";
//         if (GameGlobalVariable.isTeShuLevel() === 1) {
//             actionName = "无尽模式视频复活";
//         } else {
//             const boshuState = GameDataMgr.getNowLevelBoshuState(
//                 GameGlobalVariable.nowlevel,
//                 2
//             ) + 1;
//             actionName = `${GameGlobalVariable.nowlevel}章_${boshuState}波_${actionName}`;
//         }
//         ADMgr.showRewardedVideo(actionName, () => {
//             this.nowdata.back(1);
//             this.onCloseView();
//         });
//     }

//     /**
//      * 返回主页面操作
//      * @建议名称 handleBackHome
//      */
//     public onBackHome() {
//         this.nowdata.back(4);
//         this.onCloseView();
//     }

//     /**
//      * 关闭界面
//      * @建议名称 closeView
//      */
//     public onCloseView() {
//         this._close();
//     }

//     /**
//      * 更新倒计时
//      * @建议名称 updateCountdown
//      */
//     public updateTime() { }

//     /**
//      * 减少倒计时时间
//      * @建议名称 decreaseCountdown
//      */
//     public jianTime() {
//         this.time -= 1;
//         this.updateTime();
//         if (this.time <= 0) {
//             this.isjishi = true;
//             this.onBackHome();
//         }
//     }

//     /**
//      * 更新函数
//      * @param {number} deltaTime - 增量时间
//      * @建议名称 update
//      */
//     public update(deltaTime: number) {
//         if (!this.isjishi) {
//             this.offtime += deltaTime;
//             if (this.offtime >= 1) {
//                 this.offtime = 0;
//             }
//         }
//     }
// }

import UIGameFailUIBindings from "./UI_GameFail_UIBindings";
import UIViewBase from "./UIView";
import { ADMgr } from "./ADManager";
import { GameGlobalVariable } from "./GameGlobalVariable";
import CommonUtils from "./CommonUtils";
import { GameDataMgr } from "./GameDataManager";

const { ccclass, property } = cc._decorator;

/**
 * 建议 class 名 : GameFailView
 * 游戏失败视图类，继承自 UIView
 */
@ccclass
export default class ViewGameFail extends UIViewBase {
    /**
     * 自动绑定的UI组件
     * @建议名称 autoUI
     */
    @property(UIGameFailUIBindings)
    public auto_ui: any = null;

    /**
     * 当前数据
     * @建议名称 currentData
     */
    public nowdata: any = {};

    /**
     * 倒计时时间
     * @建议名称 countdownTime
     */
    public time: number = 10;

    /**
     * 离线时间
     * @建议名称 offlineTime
     */
    public offtime: number = 0;

    /**
     * 是否在计时
     * @建议名称 isTiming
     */
    public isjishi: boolean = false;

    /**
     * 显示失败UI
     * @param {any} data - 失败数据
     * @param  {...any} rest - 其他参数
     * @建议名称 showFailUI
     */
    public _show(failData: any, ...otherParams: any[]) {
        this.nowdata = failData;
        this.isjishi = false;
        CommonUtils.clearCoins();
    }

    /**
     * 点击事件监听器
     * @param {any} event - 点击事件
     * @建议名称 clickListener
     */
    public _clickListener(clickEvent: cc.Button) {
        const uiBindings = this.auto_ui;
        switch (clickEvent) {
            case uiBindings.btn_fuhuo:
                this.handleRevive();
                break;
            case uiBindings.btn_nofuhuo:
                this.handleBackHome();
        }
    }

    /**
     * 复活操作
     * @建议名称 handleRevive
     */
    public handleRevive() {
        let reviveAction = "视频复活";
        if (GameGlobalVariable.isSpecialLevel() === 1) {
            reviveAction = "无尽模式视频复活";
        } else {
            const levelWaveState = GameDataMgr.getCurrentLevelWaveState(
                GameGlobalVariable.nowlevel,
                2
            ) + 1;
            reviveAction = `${GameGlobalVariable.nowlevel}章_${levelWaveState}波_${reviveAction}`;
        }
        ADMgr.showRewardedVideoAd(reviveAction, () => {
            this.nowdata.back(1);
            this.onCloseView();
        });
    }

    /**
     * 返回主页面操作
     * @建议名称 handleBackHome
     */
    public handleBackHome() {
        this.nowdata.back(4);
        this.onCloseView();
    }

    /**
     * 关闭界面
     * @建议名称 closeView
     */
    public onCloseView() {
        this._close();
    }

    /**
     * 更新倒计时
     * @建议名称 updateCountdown
     */
    public updateTime() {}

    /**
     * 减少倒计时时间
     * @建议名称 decreaseCountdown
     */
    public jianTime() {
        this.time -= 1;
        this.updateTime();
        if (this.time <= 0) {
            this.isjishi = true;
            this.handleBackHome();
        }
    }

    /**
     * 更新函数
     * @param {number} deltaTime - 增量时间
     * @建议名称 update
     */
    public update(delta: number) {
        if (!this.isjishi) {
            this.offtime += delta;
            if (this.offtime >= 1) {
                this.offtime = 0;
            }
        }
    }
}